package com.example.testlib.agencymode

import java.lang.reflect.InvocationHandler
import java.lang.reflect.Method

class AgentHandlerKT : InvocationHandler {

    private var mTarget : Any? = null

    constructor(target : Any?) {
        this.mTarget = target
    }

    override fun invoke(proxy: Any?, method: Method, args: Array<out Any>?): Any? {
        println("方法执行前")
        // 因为传来的参数 args 是不确定的，所以用 *args.orEmpty() 传参
        val result = method.invoke(mTarget, *args.orEmpty())
        println("方法执行后")
        return result
    }
}